#ifndef _GEOMETRY_WRAP_H
#define _GEOMETRY_WRAP_H

#include "WrapDefs.h"

#include "Geometry/UGGeometry.h"
#include "Geometry/UGGeoPoint.h"
#include "Geometry/UGGeoLine.h"
#include "Geometry/UGGeoRegion.h"


#ifdef __cplusplus  
extern "C" { 
#endif

RWRAP_API char* RWRAP_CALL GeometryType2Name(UGint nType);
RWRAP_API UGint RWRAP_CALL  Name2GeometryType(const char* name);

RWRAP_API UGGeometry* RWRAP_CALL Geometry_wrap_create(const char* type);

RWRAP_API UGint RWRAP_CALL Geometry_wrap_getID(const UGGeometry* pGeometry);

RWRAP_API void RWRAP_CALL Geometry_wrap_setID(UGGeometry* pGeometry, UGint id);

RWRAP_API UGint RWRAP_CALL Geometry_wrap_getType(const UGGeometry* pGeometry);

RWRAP_API char* RWRAP_CALL Geometry_wrap_getType_name(const UGGeometry* pGeometry);

RWRAP_API UGdouble RWRAP_CALL Geometry_wrap_getLength(const UGGeometry* pGeometry);

RWRAP_API UGbool RWRAP_CALL Geometry_wrap_getInnerPoint(const UGGeometry* pGeometry, UGdouble& x, UGdouble& y);

RWRAP_API void RWRAP_CALL GeoPoint_wrap_make(UGGeoPoint* pGeometry, UGdouble x, UGdouble y);

RWRAP_API void RWRAP_CALL Geometry_wrap_make(UGGeometry* pGeometry, const UGdouble* px, const  UGdouble* py, const UGint* pp, UGint nCount);

RWRAP_API UGbool RWRAP_CALL Geometry_wrap_getPoints(UGGeometry* pGeometry, UGdouble*px, UGdouble*py);

RWRAP_API UGint RWRAP_CALL Geometry_wrap_getSubCount(UGGeometry* pGeometry);

RWRAP_API UGbool RWRAP_CALL Geometry_wrap_getPolyCount(UGGeometry* pGeometry, UGint* p);

RWRAP_API UGint RWRAP_CALL Geometry_wrap_getDimension(UGGeometry* pGeometry);

RWRAP_API UGbool RWRAP_CALL Geometry_wrap_getBounds(UGGeometry* pGeometry, UGdouble[] );

RWRAP_API UGdouble RWRAP_CALL Geometry_wrap_getArea(UGGeometry* pGeometry);

RWRAP_API void RWRAP_CALL GeoRegion_wrap_holes(UGGeoRegion* pGeometry, UGint* p);

RWRAP_API void RWRAP_CALL GeoRegion_warp_protected_decompose(UGGeoRegion*pGeometry, Wrap_Geometrys& result);

RWRAP_API void RWRAP_CALL Geometry_wrap_delete(UGGeometry* pGeometry);

RWRAP_API void RWRAP_CALL GeoPoint_wrap_detete(UGGeoPoint* pGeometry);

RWRAP_API void RWRAP_CALL GeoLine_wrap_delete(UGGeoLine* pGeometry);

RWRAP_API void RWRAP_CALL GeoRegion_wrap_delete(UGGeoRegion* pGeometry);


#ifdef __cplusplus
}
#endif
	
#endif
